GO 語言是由 Rob Pike 與 Ken Tompson 兩位 UNIX 作業系統開發者於 2009 九年開始發起的一項開放原始碼計畫。這些主力開發者們大幅引用過去的經驗設計出這個新的語言,具有以下特性:
GO 語言在 2013 年 docker 專案問世之後獲得空前的成功;2016 年獲得 TIOBE 指數給予年度最佳程式語言獎項;現在的殺手級應用 K8S更是所有 IT 人員都感興趣的強大工具。這都顯示使用 GO 語言建構大型系統的便利與快捷。
所以筆者這次的鐵人賽挑戰要帶給 IT 邦幫忙的網友們一串 GO 語言的教學文...嗎?且先讓我們回顧歷年鐵人賽有哪些 GO 語言相關的文章吧:
就連今年目前也已經至少有以下幾篇
所以,不管是語言的學習本身或是語言的應用面,我們都已經有了這些前人的教學,那麼筆者又何必多此一舉重新分享安裝、Hello World、語法、演算法簡單實作、小型專案...的流程呢?因此,筆者決定探究的主題是至今比較少網友曾經訂過得目標,也就是研究** GO 語言是如何實作出來的?**
如此一來與前人的努力便不顯重複,也能夠提供其他的資訊。
然而,難道這個題目就真的那麼新鮮嗎?也不盡然。今年的 COSCUP 就有一位 Ken-Yi Lee 大大給了一個演講「從原始碼看 GO 語言的排程與實現」,條理分明,推薦各位讀者閱讀!但是筆者是比較土法煉鋼的方式在且戰且走,與往年的風格不會相去太遠。
其實筆者也是且戰且走的在準備這系列,對筆者來說這是全新的挑戰,內心也是非常期待。雖然根據往年經驗,預先建立目標也不一定能夠成功符合預期地完成,但這裡還是列出以下幾個大方向:
這些題目都非常大,承諾要將之全部完成顯然不切實際,因此實際進度會隨著寫作情況調整,還請各位網友海涵!但筆者承諾絕對盡筆者所能來探究 GO 語言的核心實作。當然,這系列也不能為了 GO 語言初學者從零開始,所以目標客群有一些基本條件:
為了讓有興趣的讀者諸君能夠一同體會這個主題的樂趣,筆者在這開張的第一日就一起介紹所需要的開發環境。首先複製專案:
$ git clone https://github.com/golang/go.git
$ cd go
$ GOOS=Linux GOARCH=amd64 ./make.bash
請視情況調整所需指定的作業系統與處理器架構。
如此一來我們就有一個實驗用的 GO 語言環境啦!明天將開始我們的追蹤之旅,各位讀者我們明日再會!